package com.xyy.saas.payment.payment.core.dto;

import com.xyy.saas.payment.common.enums.ReconcileTradeErrorDataTypeEnum;
import com.xyy.saas.payment.common.enums.ReconcileTradeErrorTypeEnum;
import com.xyy.saas.payment.cores.enums.FbankTradeCodeEnum;
import com.xyy.saas.payment.cores.enums.SeparateOrderBizTypeEnum;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @author wangzeqi
 */
@Data
@Accessors(chain = true)
public class ReconcileTradeErrorDto implements Serializable {

    private static final long serialVersionUID = 4414810676942313730L;

    /**
     * 业务单号
     */
    private String bizNo;

    private String ybmOrderNo;

    /**
     * 差错数据类型
     *
     * @see ReconcileTradeErrorDataTypeEnum#getCode()
     */
    private Integer dataType;

    /**
     * 交易类型
     *
     * @see FbankTradeCodeEnum#getCode()
     */
    private Integer tradeCode;

    /**
     * 业务场景
     *
     * @see SeparateOrderBizTypeEnum#getCode()
     */
    private Integer bizCode;

    /**
     * 预期金额
     */
    private BigDecimal expectedAmount;

    /**
     * 实际金额
     */
    private BigDecimal actualAmount;

    /**
     * 交易时间
     */
    private Date tradeTime;

    /**
     * 对账日期
     */
    private Date reconcileDate;

    /**
     * 单边 错账
     *
     * @see ReconcileTradeErrorTypeEnum#getType()
     */
    private Integer errorType;

    private String extra;

    /**
     * 错误描述
     */
    private String errorDescription;

}
